package com.zzw.bridge.business.service;

import com.zzw.bridge.business.vo.ZzwPierProjectVo;
import com.zzw.bridge.common.utils.Result;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;

/**
 * 数据处理
 *
 * @author XiaoJie
 * @date 2025/5/16 11:33
 */
public interface ReceiveDataService {
    /**
     * 接收处理外部数据
     *
     * @param data       "json数据"
     * @return           {@link Boolean}
     */
    Boolean receiveData(String data);

    /**
     * 获取账户下的项目列表
     *
     * @return {@link List<ZzwPierProjectVo>}
     */
    List<ZzwPierProjectVo> getProjectList(HttpServletRequest request);

    /**
     * 异步存储并解压上传的 ZIP 文件
     *
     * @param file 上传的 ZIP 文件
     * @param reportId 墩柱报告ID
     * @throws IOException 当文件操作发生 I/O 异常时抛出
     */
    void storeAndExtractZipFile(MultipartFile file, String reportId) throws IOException;

    /**
     * 同步项目数据
     *
     * @param data "json"
     * @return {@link String}
     */
    Result<String> receiveProjectData(String data);
}
